home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 2000
/
MacHack 2000.toast
/
pc
/
The Hacks
/
Softshoe
/
Lisa's Mac Parts
/
Windows
/
WindowPile.cp
< prev
next >
Wrap
Text File
|
2000-06-23
|
1KB
|
47 lines
// WindowPile.cp
#ifndef WindowPile_h
#include "WindowPile.h"
#endif
WindowPile::WindowPile( Rectangle available, PointObject bestSize )
: pile( available ),
first( available.TopLeft() ),
finished( 0 )
{
PointObject minimum = bestSize + PointObject( 11, 35 );
PointObject availableSize = available.Size();
uint16 horizontal = ( availableSize.h > minimum.h )
? availableSize.h / minimum.h
: 1;
uint16 vertical = ( availableSize.v > minimum.v )
? availableSize.v / minimum.v
: 1;
offset.h = availableSize.h / horizontal;
offset.v = availableSize.v / vertical;
stop.h = first.h + horizontal * offset.h;
stop.v = first.v + vertical * offset.v;
pile.right = pile.left + offset.h - 3;
pile.bottom = pile.top + offset.v - 3;
}
void WindowPile::operator++()
{
Assert( Unfinished() );
pile += PointObject( offset.h, 0 );
if ( pile.left < stop.h )
return;
pile += PointObject( first.h - pile.left, offset.v );
finished = pile.top >= stop.v;
}